// 生产环境

const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin')

// 使用插件 merge 将代码合并
module.exports = {
  // 指定生产环境
  mode: 'production',
  devtool: 'source-map',
  optimization: {
    // 将公共的文件，直接从node_modules包直接导入
    // splitChunks是用来设置代码如何打包和分割的，
    /**
     * webpack中实现代码分割的两种方式：
     * 1.同步代码：只需要在webpack配置文件总做optimization的配置即可
     * 2.异步代码(import)：异步代码，无需做任何配置，会自动进行代码分割，放置到新的文件中
     */
    splitChunks: {
      /**
       * async异步代码分割
       * initial同步代码分割
       * all同步异步分割都开启
      */
			chunks: 'all'
		},
    
    // 压缩js代码
    minimizer: [
      new UglifyJsPlugin(),
      new CssMinimizerPlugin()
    ]
  }
}